import Api from "/@/api/Api";

import ApiConfig from "/@/api/ApiConfig";

export default class MenuApi extends Api {
    static list() {
        return this.get({
            url: ApiConfig.SYSTEM.MENU_LIST,
        });
    }
    static insert(menu: any) {
        return this.post({
            url: ApiConfig.SYSTEM.MENU,
            data: menu,
        });
    }

    static update(menu: any) {
        return this.put({
            url: ApiConfig.SYSTEM.MENU,
            data: menu
        });
    }

    static view(id: string) {
        return this.get({
            url: ApiConfig.SYSTEM.MENU,
            params: {id: id}
        });
    }

    static remove(ids: string) {
        return this.delete({
            url: ApiConfig.SYSTEM.MENU,
            params: {ids: ids}
        });
    }
}

export interface MenuTypes {
    /**
     * 菜单ID
     */
    menuId: string;

    /**
     * 上级菜单
     */
    parentId: string;

    /**
     * 菜单类型
     */
    menuType: string;

    /**
     * 路由路径
     */
    path: string;

    /**
     * 路由名称
     */
    name: string;

    /**
     * 组件路径
     */
    component: string;

    /**
     * 路由重定向
     */
    redirect: string;

    /**
     * 路由参数
     */
    meta: metaTypes

    /**
     * 排序
     */
    sortOrder: number
}

export interface metaTypes {
    /**
     * 菜单名称
     */
    title: string;

    /**
     * 链接地址
     */
    isLink: boolean;

    /**
     * 菜单显示隐藏控制
     */

    isHide: boolean;

    /**
     * 路由缓冲
     */
    isKeepAlive: boolean;

    /**
     * 是否固定
     */
    isAffix: boolean;

    /**
     * 是否内嵌
     */
    isIframe: boolean;

    /**
     * 权限标识
     */
    permissions: string;

    /**
     * 图标
     */
    icon: string;

}